
//定义表示记分牌的类
class ScorePanel {
   // score和level用来记录分数和等级
   score: number = 0;
   level = 1;
   // 分数和等级所在的元素，在构造函数中进行初始化
   scoreEle: HTMLElement;
   levelEle: HTMLElement;

   // 设置一个变量限制等级  default 10
   maxLevel: number;

   // 设置一个变量表示多少分时升级 default 10
   upScore: number;
   constructor(MaxLevel: number = 10, upScore: number = 10) {
      this.scoreEle = document.getElementById('score')!;
      this.levelEle = document.getElementById('level')!;

      this.maxLevel = MaxLevel;
      this.upScore = upScore
   }

   // 设置一个加分的方法
   addScore() {
      this.scoreEle.innerHTML = ++this.score + ""
      //判断分数是多少
      if (this.score % this.upScore === 0) {
         this.levelUp()
      }
   }

   // 提升等级的方法
   levelUp() {
      if (this.level < this.maxLevel) {
         this.levelEle.innerHTML = ++this.level + ""
      }

   }
}

// 测试代码
// const scorePanel = new ScorePanel();
// scorePanel.addScore()
// scorePanel.addScore()
// scorePanel.addScore()

// for (let i = 0; i < 200; i++) {
//    scorePanel.addScore();
// }

export default ScorePanel;